package pl.edu.amu.kino.kardamon.engine;

import java.util.Vector;

class Rozklad {

    public static Przystanek getPrzystanek(String nazwa) {
        Przystanek przystanek = new Przystanek();
        przystanek.setNazwa(nazwa);
        przystanek.setId(Baza.getInstance().getIdPrzystanku(nazwa));
        przystanek.setLinie(Baza.getInstance().getListeLiniiNaPrzystanku(przystanek.getId()));
        return przystanek;
    }

    public static Vector[] getTablicaRozkladu(Linia l, Przystanek p) {

        String[] tablica = Baza.getInstance().getListeGodzinOdjazduLinii(l.getId());
        Vector odleglosci = Baza.getInstance().getCzasyPrzejazduLinii(l.getId());
        Vector przyst = Baza.getInstance().getListePrzystankowNaLinii(l.getId());
        int ktory = przyst.indexOf(p.getNazwa());
        int dodac = 0;
        for (int i = 0; i < ktory; i++) {
            dodac += Integer.parseInt((String) odleglosci.elementAt(i));
        }

        int hour = -1, minuty = -1;
        for (int i = 0; i < tablica.length; i++) {
            hour = Integer.parseInt(tablica[i].substring(0, 2));
            minuty = Integer.parseInt(tablica[i].substring(2));
            hour = (hour + (minuty + dodac) / 60) % 24;
            minuty = (minuty + dodac) % 60;
            tablica[i] = "";
            if (hour < 10) {
                tablica[i] = "0";
            }
            tablica[i] = tablica[i].concat(Integer.toString(hour));
            if (minuty < 10) {
                tablica[i] = tablica[i].concat("0");
            }
            tablica[i] = tablica[i].concat(Integer.toString(minuty));

        }
        Vector[] godziny = new Vector[24];
        hour = -1;
        for (int i = 0, j = -1; i < tablica.length; i++) {
            if (hour != Integer.parseInt(tablica[i].substring(0, 2))) {
                ++j;
                hour = Integer.parseInt(tablica[i].substring(0, 2));
                godziny[j] = new Vector();
                godziny[j].addElement(Integer.toString(hour));
            }
            godziny[j].addElement(Integer.toString(Integer.parseInt(tablica[i].substring(2))));


        }
        return godziny;
    }
}
